The present invention relates to the field of business process management (BPM) systems and, more particularly, to automating cross-workflow awareness within a BPM.
Business process management (BPM) systems orchestrate the performance of various tasks between the components of an enterprise computing system. At the heart of this orchestration is the concept of a workflow that defines each step to be performed, the system performing it, and the data values to be used. As each step of the workflow is performed, the BPM system uses the received output to conduct the next step.
Workflows, however, have become increasingly complex and often overlap in functionality. Further, workflows are often written from a specific perspective (i.e., customer, development, etc.) and the author may not be aware of similar workflows for the process that are written from other perspectives. This situation results in multiple workflows that include common steps, which are individually performed by each workflow, and unnecessarily consume system resources with repetitive operations.
For example, at the end of the month, the sales department runs a workflow having a step that totals the monthly sales. The accounting department runs a separate workflow that includes a step that totals the monthly sales. Each workflow, when run, totals the monthly sales separately; the same output is generated twice.
Current BPM systems are inefficient in the sense that they blindly run workflows without regard to results from previous runs that could be reused on the current run.